\section{Consigna I - Capturando tr\'afico}

En esta consigna se ha desarollado una herramienta que captura paquetes ARP
durante un determinado tiempo y guarda el tr\'afico capturado en un archivo.
Esta herramienta se ejecut\'o en varios contextos distintos: varias redes
interna de una oficina y una red hogare\~na.  Se consider\'o el contexto con
mayor tr\'afico para hacer un an\'alisis de entrop\'ia sobre los paquetes
capturados.

\subsection{Inciso A}
La herramienta para escuchar pasivamente la red local se desaroll\'o en
\textit{python} utilizando la funci\'on \textit{sniff} del paquete
\textit{scapy.all}.  El c\'odigo se encuentra en \textit{codigos/sniff.py}.
En el mismo se puede ingresar el archivo donde se guardar\'an los datos de
captura. \\ Los datos pedidos por el punto \textit{b} de la consigna son
impresos en la linea de comando. Adicionalmente, los mismos se guardan como un
archivo de formato \textit{PCAP}, con el nombre dado por el primer argumento
del programa.  Se pueden visualizar con otra herramienta desarollada en
\textit{python} y utilizando la misma librer\'ia. Esta herramienta se encuentra
en \textit{codigos/dump.py}.

\subsection{Inciso B}

En esta secci\'on se analiza la entrop\'ia de las capturas obtenidas en la
medici\'on etiquetada como \textbf{oficina3} que se realizaron en el gateway de
una oficina durante varias horas. \\

Los dos modelos que se consideraron para un primer c\'alculo de entrop\'ia, son los propuestos por en el c\'odigo entregado por la
c\'atedra. 
\begin{itemize}
\item \textbf{Destinos}: El alfabeto es el conjunto de direcciones de IP de destino de los paquetes del tipo \textit{who has}.
\item \textbf{Origenes}: El alfabeto es el conjunto de direcciones de IP de origen de los paquetes del tipo \textit{who has} y de tipo \textit{is at}.
\end{itemize}

Para calcular la entrop\'ia de este modelo
y los dem\'as modelos propuestos en el inciso \textit{d} se desarroll\'o una
herramienta en \textit{python} que recorre los archivos con datos de capturas,
recopila la informaci\'on y genera un archivo del tipo \textit{csv} con el
conteo de la cantidad de eventos por s\'imbolo. El c\'odigo de este programa se
encuentra en \textit{codigos/analize\_to\_csv.py}. \\
Luego se arm\'o una hoja de c\'alculos del tipo \textit{ods (Libre Office)} con estos datos. El \textit{csv} generado y la hoja de
c\'alculos se encuentran en \textit{analisis/datos.csv} y
\textit{analisis/datos.ods} respectivamente.\\

\begin{table}[h!]
\caption{Entrop\'ia de los modelos propuestos por la c\'atedra}
\begin{center}
\begin{tabular}{|r|r|r|}
\hline 
\textbf{Modelo} & \textbf{Eventos} & \textbf{H (bits)}  \\
\hline 
Destinos & $140$ & $3.3885582986$ \\
\hline 
Origenes & $243$ & $3.4474843806$ \\
\hline
\end{tabular}
\end{center}
\end{table}



\subsection{Inciso C}
Se hicieron varias capturas de tr\'afico en distintas redes. A continuaci\'on
se presenta una tabla comparativa de los resultados obtenidos en cada contexto.

\begin{table}[h!]
\caption{Capturas de redes locales}
\begin{center}
\begin{tabular}{|r|p{4cm}|r|r|p{6cm}|}
\hline 
\textbf{Etiqueta} & \textbf{Servidor usado} & \textbf{Tiempo} & \textbf{Paquetes} & \textbf{Comentarios}  \\
\hline 
oficina1 & Nodo conectado a red WiFi de una oficina & 30 minutos & 16 & Al detectarse poco tr\'afico se detuvo la captura. \\
\hline 
oficina2 & Nodo conectado a red WiFi de una oficina & 10 minutos & 6 & Al detectarse poco tr\'afico se detuvo la captura. \\
\hline 
oficina3 & Gateway de una oficina. Con varias salidas a internet balanceadas & 2 horas & 361 & De todas las redes capturadas fu\'e la que tuvo un comportamiento mas completo. \\	
\hline 
casa1 & Nodo conectado a wifi hogare\~na & 10 minutos & 2 & Al detectarse poco tr\'afico se detuvo la captura \\
\hline
\end{tabular}
\end{center}
\end{table}

Los archivos crudos de las capturas (tipo \textit{pcap}) pueden encontrase en
el directorio \textit{capturas/}. \\ El grupo decidi\'o usar las mediciones de
la red \textit{oficina3} para los an\'alisis posteriores porque fu\'e la
captura que ten\'ia mas diversidad de comportamiento y abarcaba varias redes y
subredes, debido a que se trataba del \textit{gateway} de una oficina con
varias salidas a internet que balancean la carga de acceso a esta red.\\ Luego
de realizarse la medici\'on se detect\'o una gran cantidad de paquetes ARP del
tipo \textit{announcement} de una misma IP. La IP que generaba estos paquetes
correspond\'ia a una impresora de red y fueron filtrados para los an\'alisis ya
que este dispositivo no interact\'uaba con ning\'un otro.

\subsection{Inciso D}

Se proponen otros modelos alternativos para fuentes de informaci\'on y c\'alculo de entrop\'ia:

\begin{itemize}
\item \textbf{Modelo 1}: La fuente de informaci\'on es la red con un alfabeto de dos s\'imbolos correspondiendo a si se emite un mensage \textit{who is} o \textit{is at}.
\item \textbf{Modelo 2}: La fuente de informaci\'on es la red y los s\'imbolos del alfabeto son los mensages \textit{who is} que se originan en cada \textit{IP} distinta.
\item \textbf{Modelo 3}: La fuente de informaci\'on es la red y los s\'imbolos del alfabeto son los mensages \textit{is at} que se originan en cada \textit{IP} distinta.
\item \textbf{Grafo de requests}: La fuente de informaci\'on es la red y los s\'imbolos del alfabeto son los mensages \textit{who is} que se originan en cada \textit{IP} 
distinta para cada otra \textit{IP} distinta. Se aprovecharon los datos que se usaron para armar el grafo de requests.
\end{itemize}

A continuaci\'on se
presenta una tabla con y la entrop\'ia calculada. Los c\'alculos involucrados se
encuentran en el archivo \textit{analisis/datos.ods}.

\begin{table}[h!]
\caption{Capturas de redes locales}
\begin{center}
\begin{tabular}{|r|p{4cm}|r|}
\hline 
\textbf{Modelo} & \textbf{S\'imbolos} & \textbf{H (bits)}   \\
\hline 
Modelo 1 & Request o Reply & $0.98$ \\
\hline 
Modelo 2 & Request desde cada IP & $3.3986891163$ \\
\hline 
Modelo 3 & Reply desde cada IP & $2.8933984103$ \\
\hline 
Grafo de requests & Request desde cada IP hacia cada IP & $3.7313611023$ \\
\hline
\end{tabular}
\end{center}
\end{table}



